package test2;

public class Process {
    int pid; // 进程编号
    int arrivalTime; // 到达时间
    int burstTime; // 预计运行时间
    int startTime; // 开始执行时间
    int completionTime; // 完成时间
    int turnaroundTime; // 周转时间
    int waitingTime; // 等待时间
    int responseTime; // 响应时间
    int remainingTime; // 剩余运行时间（用于RR算法）
    boolean isCompleted; // 是否完成
    boolean isInQueue; // 是否已在队列中（用于RR算法）

    public Process(int pid, int arrivalTime, int burstTime) {
        this.pid = pid;
        this.arrivalTime = arrivalTime;
        this.burstTime = burstTime;
        this.remainingTime = burstTime;
        this.isCompleted = false;
        this.isInQueue = false;
        this.startTime = -1; // -1表示尚未开始执行
    }

    @Override
    public String toString() {
        return
                String.format("PID:%2d AT:%2d   BT:%2d     ST:%2d      CT:%2d  TAT:%2d  WT:%2d  RT:%2d",
                pid, arrivalTime, burstTime, startTime, completionTime, turnaroundTime, waitingTime, responseTime);
    }
}
